/**
添加map功能，每个map用数组表示，格式为：[{name:'name', value:'value'}]
本函数给要添加map功能的数组添加map处理函数，并返回原来数组对象
@param array 要转换成map的数组
*/
function map(array) {
	/**
	复制map格式数组
	@return 复制结果
	*/
	array.copy = function() {
		var result = new Array();
		for(var i = 0; i < array.length; i++) {
    		var obj = {name:array[i].name, value:array[i].value};
			result.push(obj);
		}
		// 返回添加map功能后的数组
		return map(result);
	}
	
	/**
	根据名称取值
	*/
	array.get = function(name) {
		var i = array.indexOf(name);
		if(i == -1) {
			return null;
		}
		return array[i].value;
	}
	
	/**
	查询map数组
	@param name 要查询的名称
	@return 索引号 -1为未找到
	*/
	array.indexOf = function(name) {
		for(var i = 0; i < array.length; i++) {
			if(array[i].name == name) {
				return i;
			}
		}
		return -1;
	}

	/**
	合并两个map格式的数组，同名部分，按第二个处理
	@return 合并的结果
	*/
	array.putAll = function(other) {
		for(var i = 0; i < other.length; i++) {
   			var obj = {name:other[i].name, value:other[i].value};
			var index = array.indexOf(other[i].name); 
			// 如果已经有值，替换，否则，放新值到后台结构列表中
			if (index != -1) {
				array[index] = obj;
			} else {
				array.push(obj);
			}
		}
		return array;
	}
	
	/**
	把map转换成json格式串，转换后的结果为：{attr1:'value', attr2:'value'}
	*/
	array.toString = function() {
		var result = "{";
		for(var i = 0; i < array.length; i++) {
			if(result != "{") {
				result += ",";
			}
			result += "'" + array[i].name + "':'" + array[i].value + "'"; 
		};
		return result += "}";
	}
	
	//添加一项
	array.put = function(akey, avalue){
		if(array.indexOf(akey)==-1){
			array[array.length] = {name:akey, value:avalue};
		}else{
			array[array.indexOf(akey)] = {name:akey, value:avalue}
		}
		return array;
	}
	return array;
}
